﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using objetos;
using publico;
using System.Text;

namespace softsales.pagina.menu_usuario
{
    public partial class menu_usuario_listar : System.Web.UI.Page
    {
        BLL_TB_MENU_USUARIO b_tb_menu_usuario = new BLL_TB_MENU_USUARIO();
        OBJ_TB_MENU_USUARIO o_tb_menu_usuario = new OBJ_TB_MENU_USUARIO();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {
                    PUB_PAGINACAO.Inicializa();
                    BTN_INCLUIR.PostBackUrl = "menu_usuario_formulario.aspx";
                    //// CAMPOS PARA FILTRO
                    DDL_FILTRO.Items.Add(new ListItem("FILTRO", "FILTRO"));
                    DDL_FILTRO.Items.Add(new ListItem("ID", "ID"));
                    DDL_FILTRO.Items.Add(new ListItem("MENU", "MENU"));
                    DDL_FILTRO.Items.Add(new ListItem("USUARIO", "USUARIO"));


                    Label lbl_titulo_pagina = (Label)Master.FindControl("LBL_TITULO_PAGINA");
                    Label lbl_titulo_formulario = (Label)Master.FindControl("LBL_TITULO_FORMULARIO");
                    if (lbl_titulo_pagina != null)
                    {
                        lbl_titulo_pagina.Text = "Menu Usuário";
                        lbl_titulo_formulario.Text = "Listar";
                    }
                    CarregaGrid();
                }

            }
        }

        public void CarregaGrid()
        {
            StringBuilder sb = new StringBuilder();


            List<string> lista = new List<string>();

            if (DDL_FILTRO.SelectedValue != string.Empty && TXT_PESQUISAR.Text != string.Empty)
            {
                switch (DDL_FILTRO.SelectedValue)
                {
                    case "ID":
                        lista.Add(string.Format(" tb_menu_usuario.id = '{0}'", TXT_PESQUISAR.Text));

                        break;

                    case "MENU":
                        lista.Add(string.Format(" tb_menu.menu LIKE '%{0}%'", TXT_PESQUISAR.Text));

                        break;

                    case "USUARIO":
                        lista.Add(string.Format(" tb_usuario.nome LIKE '%{0}%'", TXT_PESQUISAR.Text));

                        break;

                }


            }
            sb.Append(string.Join(" and ", lista.ToArray()));
            GRV_TB_MENU_USUARIO.DataSource = b_tb_menu_usuario.Selecionar(sb.ToString(), PUB_PAGINACAO.Sort, PUB_PAGINACAO.PageIndex, PUB_PAGINACAO.PageSize);
            GRV_TB_MENU_USUARIO.DataBind();

            PUB_PAGINACAO.Paginacao(true);
        }

        protected void GRV_TB_MENU_USUARIO_Sorting(object sender, GridViewSortEventArgs e)
        {
            PUB_PAGINACAO.Sort = e.SortExpression;
            if (PUB_PAGINACAO.SortDirection == SortDirection.Ascending)
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Descending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + " " + PUB_PAGINACAO.DESCENDENTE;
            }
            else
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Ascending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + "  " + PUB_PAGINACAO.ASCENDENTE;
            }

            CarregaGrid();
        }

        protected void BTN_INCLUIR_Click(object sender, EventArgs e)
        {
            Response.Redirect("menu_usuario_formulario.aspx", false);
        }

        protected void IMG_BTN_EDITAR_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            String id = btn.CommandArgument.ToString();
            Response.Redirect(string.Format("menu_usuario_formulario.aspx?id={0}", id), false);
        }

        protected void IMG_BTN_EXCLUIR_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            String id = btn.CommandArgument.ToString();
            if (id != string.Empty)
            {
                o_tb_menu_usuario.id = Convert.ToInt32(id);
                b_tb_menu_usuario.Excluir(o_tb_menu_usuario);
                Master.MSG_ALERTA(PUB_MENSAGEM.MSG_EXCLUSAO);
                CarregaGrid();
            }
        }

        protected void GRV_TB_MENU_USUARIO_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GRV_TB_MENU_USUARIO.PageIndex = e.NewPageIndex;
            PUB_PAGINACAO.PageIndex = e.NewPageIndex;
            CarregaGrid();
        }

        protected void IMG_BTN_PESQUISAR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }

        protected void IMG_BTN_PRIMEIRO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }

        protected void IMG_BTN_ANTERIOR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex - 1;
            CarregaGrid();
        }

        protected void IMG_BTN_PROXIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex + 1;
            CarregaGrid();
        }

        protected void IMG_BTN_ULTIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.TotalDePaginas - 1;
            CarregaGrid();
        }
    }
}